home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / maxit.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-24  |  4.5 KB  |  147 lines

  1. 1000  '   MAXIT  FROM PET
  2. 1010  '   ADAPTED TO IPM PC BY PATRICK LEABO
  3. 1020  '   3-20-82              TUCSON ARIZONA
  4. 1030  '
  5. 1090  SCREEN 0:COLOR 7,0:WIDTH 40:KEY OFF
  6. 1100  DEFINT A-Z:DATA 49,51,53,54,56,58,60,61
  7. 1110  RANDOMIZE VAL(RIGHT$(TIME$,2))
  8. 1120  FOR N= 0 TO 7:READ NT(N):NEXT
  9. 1140  DIM BD(7,7),AV(64)
  10. 1150  CLS:LOCATE 3,11:PRINT "THE GAME OF MAXIT"
  11. 1160  PRINT "DO YOU WANT INSTRUCTIONS ? ";:GOSUB 3000:PRINT
  12. 1170  IF KS$= "Y" OR KS$="y" THEN GOSUB 2210
  13. 1180  PRINT :PRINT "1 OR 2 PLAYERS ?";:GOSUB 3000
  14. 1190  PRINT KS$:NP= VAL (KS$):PRINT 
  15. 1200  IF NP= 1THEN 1240
  16. 1210  IF NP< > 2THEN 1180
  17. 1220  INPUT "WHAT IS YOUR NAME #1";P1$:P1$=LEFT$(P1$,7):BEEP:PRINT
  18. 1230  PRINT :INPUT "WHAT IS YOUR NAME #2";P2$:P2$=LEFT$(P2$,7):BEEP:PRINT :GOTO 1250
  19. 1240  P2$= "IBM PC":INPUT "WHAT IS YOUR NAME ";P1$:BEEP:PRINT:P1$=LEFT$(P1$,7)
  20. 1250  CLS:LOCATE 2,16:PRINT "M A X I T":GOSUB 2360
  21. 1260  RANDOMIZE VAL(RIGHT$(TIME$,2)):MD= 1
  22. 1270  FOR K= 1TO 64:AV(K)= K:NEXT 
  23. 1280  FOR K= 64TO 1STEP - 1:READ PC
  24. 1290  P1= 1+ INT (K* RND (1))
  25. 1300  J= AV(P1)- 1
  26. 1310  IF P1< K THEN FOR I= P1 TO K- 1:AV(I)= AV(I+ 1):NEXT
  27. 1320  I= INT (J/ 8):J= J- 8* I
  28. 1330  BD(I,J)= PC:GOSUB 1540:NT= J:GOSUB 1980
  29. 1340  NEXT K:RESTORE 1350:NT= 7:GOSUB 1980:GOSUB 1980:GOSUB 1980
  30. 1350  DATA 15,10,9,9,8,8,7,7,7,6,6,6
  31. 1360  DATA 5,5,5,5,4,4,4,4,3,3,3,3,3
  32. 1370  DATA 2,2,2,2,2,2,1,1,1,1,1
  33. 1380  DATA 0,0,0,0,0,0,-1,-1,-1,-1,-1
  34. 1390  DATA -2,-2,-2,-2,-3,-3,-3
  35. 1400  DATA -4,-4,-4,-5,-5,-6,-6
  36. 1410  DATA -7,-9,100
  37. 1420  S1= 0:S2= 0:GOSUB 2000
  38. 1430  REM  PLAYER 1
  39. 1440  PL= 1:GOSUB 1630:IF FL= 0THEN 1470
  40. 1450  REM  PLAYER 2
  41. 1460  PL= 2:GOSUB 1630:IF FL< > 0THEN 1430
  42. 1470  LOCATE 22,1:PRINT STRING$(39," ");:LOCATE 22,1:ON 2+ SGN (S2- S1)GOSUB 1510,1520,1530
  43. 1480  POKE 106,0:LOCATE 23,1:PRINT STRING$(39," ");:LOCATE 23,1:PRINT "DO YOU WANT TO PLAY AGAIN ?";:C$="":WHILE C$="":C$=INKEY$:WEND:PRINT C$
  44. 1490  IF "Y"= C$ OR "y"=C$ THEN 1250
  45. 1500  CHAIN "MENU"
  46. 1505  END
  47. 1510  PRINT P1$;" WON BY ";STR$ (S1- S2);" POINTS":PRINT :RETURN
  48. 1520  PRINT "IT'S A TIE !!                   ":RETURN
  49. 1530  PRINT P2$;" WON BY ";STR$ (S2- S1);" POINTS ":PRINT :RETURN
  50. 1540  REM  DRAW BOARD POSITION I,J IN MODE MD (1=RED,2=BLACK)
  51. 1550  PC= BD(I,J)
  52. 1560  LOCATE I* 2+ 5,J*4+5
  53. 1570  IF MD= 2 THEN COLOR 0,7:GOTO 1590
  54. 1580  COLOR 7,0
  55. 1590  IF PC= 100THEN PRINT "**":C1= I:C2= J:GOTO 1620
  56. 1600  IF PC= - 100THEN PRINT "  ":GOTO 1620
  57. 1610  PRINT RIGHT$ ("  "+ STR$ (PC),2)
  58. 1620  COLOR 7,0:RETURN
  59. 1630  IF PL= 2THEN 1670
  60. 1640  FL= 600:FOR J= 0TO 7:FL= FL+ BD(C1,J):NEXT 
  61. 1650  IF FL= 0THEN RETURN 
  62. 1660  NM$= P1$:DX= 1:DY= 0:GOSUB 1700:RETURN 
  63. 1670  FL= 600:FOR I= 0TO 7:FL= FL+ BD(I,C2):NEXT 
  64. 1680  IF FL= 0THEN RETURN 
  65. 1690  NM$= P2$:DX= 0:DY= 1:GOSUB 1700:RETURN 
  66. 1700  Y= C1:X= C2:FX= 1
  67. 1705  IF PL = 2 THEN COLOR 0,7
  68. 1710  IF NP= 2OR PL= 1THEN 1730
  69. 1720  PRINT :GOSUB 1970:PRINT NM$;"'S TURN.         ":GOSUB 2060:GOTO 1880
  70. 1730  GOSUB 1970:ON FX GOTO 1740,1750
  71. 1740  PRINT :GOSUB 1970:PRINT NM$;", YOUR TURN.     ":PRINT :GOTO 1760
  72. 1750  PRINT "                    ":PRINT
  73. 1760  FOR QQ=1000 TO 100 STEP -100 :SOUND QQ, 0.2 :NEXT
  74. 1770  C$=INKEY$:IF C$="" THEN 1770 ELSE KS=ASC(C$)
  75. 1775  IF C$=CHR$(27) THEN 1500
  76. 1780  IF C$< > " "THEN 1860
  77. 1790  OX= X:OY= Y
  78. 1800  Y= Y+ DY:IF Y> 7THEN Y= 0
  79. 1810  X= X+ DX:IF X> 7THEN X= 0
  80. 1820  PT= BD(Y,X):IF ABS (PT)= 100THEN 1800
  81. 1830  MD= 1:I= OY:J= OX:GOSUB 1540
  82. 1840  MD= 2:I= Y:J= X:GOSUB 1540
  83. 1850  GOTO 1770
  84. 1860  IF C$< > CHR$ (13)THEN 1770
  85. 1870  IF ABS (BD(Y,X))= 100THEN 1770
  86. 1880  REM SCORE IT
  87. 1890  '
  88. 1900  IF NP=1 AND PL =2 THEN MD= 2:I= Y :J= X:GOSUB 1540:FOR DL = 1 TO 1500:NEXT
  89. 1905  GOSUB 1990:MD= 1:I= C1:J= C2:BD(I,J)= - 100:GOSUB 1540
  90. 1910  I= Y:J= X:PT= BD(I,J):BD(I,J)= 100:GOSUB 1540
  91. 1920  IF PL= 1THEN S1= S1+ PT
  92. 1930  IF PL= 2THEN S2= S2+ PT
  93. 1940  GOSUB 1970
  94. 1950  LOCATE 22,25:PRINT "LAST TAKEN:";PT;" ";
  95. 1960  GOSUB 2000:RETURN 
  96. 1970  LOCATE 22,1:RETURN
  97. 1980  'PLAY "MNMFL64N=NT(NT);":RETURN
  98. 1990  'FOR N=49 TO 70 :PLAY "MBT255MLO3L64N=N;":NEXT:RETURN
  99. 1991  FOR XX=200 TO 1000 STEP 100 :SOUND XX, 0.2 :NEXT :RETURN
  100. 2000  GOSUB 1970
  101. 2010  LOCATE 21,1:ME$=P1$+"'S SCORE="+STR$ (S1)+"  "+P2$+"'S SCORE="+STR$ (S2)+"       ":ME$=LEFT$(ME$,40):PRINT ME$:RETURN
  102. 2020  REM  SCREEN INSTRUCTIONS
  103. 2050  RETURN
  104. 2059  '      COMPUTER PLAYER ALGORITHM
  105. 2060  MT= - 100:GG= - 1:FOR A1= 0TO 7:PC= BD(A1,C2):IF ABS (PC)= 100THEN 2200
  106. 2070  MX= - 100:FOR A2= 0TO 7
  107. 2080  IF A2< > C2 THEN PK= BD(A1,A2):IF PK< > - 100 AND PK> MX THEN MX= PK:SV= A
  108. 2090  NEXT A2
  109. 2100  IF MX< > - 100THEN 2120
  110. 2110  IF PC> MT THEN MT= PC:GG= A1:GOTO 2200
  111. 2120  IF GG< 0THEN GG= A1
  112. 2130  FOR A2= 0 TO 7:PQ= BD(A2,SV):IF PQ= - 100 OR A2= A1 THEN 2190
  113. 2140  MY= - 100:FOR A3= 0 TO 7:PW= BD(A2,A3):IF A3= SV THEN 2160
  114. 2150  IF ABS (PW)< > 100 AND PW> MY THEN MY= PW
  115. 2160  NEXT A3
  116. 2170  IF MY= - 100THEN MY= 0
  117. 2180  DT= PC- MX+ PQ- MY:IF DT> MT THEN MT= DT:GG= A1
  118. 2190  NEXT A2
  119. 2200  NEXT A1:Y= GG:RETURN 
  120. 2210  LOCATE 1,16:PRINT "M A X I T":PRINT
  121. 2220  PRINT "THE OBJECT OF MAXIT IS TO GET AS MANY"
  122. 2230  PRINT "POINTS AS POSSIBLE. TWO PLAYERS CAN"
  123. 2240  PRINT "PLAY AGAINST EACH OTHER, OR ONE AGAINST"
  124. 2250  PRINT "THE COMPUTER.":PRINT :PRINT
  125. 2260  PRINT "YOU GET POINTS BY MOVING A MARKER "
  126. 2270  PRINT "            **"
  127. 2280  PRINT "TO A SPACE WITH A NUMBER IN IT. THE"
  128. 2290  PRINT "FIRST PLAYER ALWAYS MOVES HORIZONTALLY"
  129. 2300  PRINT "AND THE SECOND MOVES VERTICALLY.  YOU"
  130. 2310  PRINT "INDICATE THE PLACE YOU WANT TO MOVE TO"
  131. 2320  PRINT "BY USING THE SPACE BAR TO POSITION"
  132. 2330  PRINT "YOURSELF, AND THEN PUSH RETURN TO TAKE"
  133. 2340  PRINT "THAT PIECE.":RETURN 
  134. 2350  PLOT 8:END 
  135. 2360  REM  OTHER OTHELLO BOARD
  136. 2370  '
  137. 2380  TOP$="ERRTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENOPTION"
  138. 2382  MD1$="CALL   CALL   CALL   CALL   CALL   CALL   CALL   CALL   CALL"
  139. 2384  MD2$="PSETTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHEN<0xB5!>"
  140. 2386  BOT$="ERLTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSAVE"
  141. 2390  LOCATE 4,4:PRINT TOP$
  142. 2400  FOR Y=5 TO 17 STEP 2:LOCATE Y,4:PRINT MD1$:LOCATE Y+1,4:PRINT MD2$:NEXT
  143. 2410  LOCATE 19,4:PRINT MD1$:LOCATE 20,4:PRINT BOT$
  144. 2440  GOSUB 2020
  145. 2450  RETURN 
  146. 3000  KS$="":WHILE KS$="":KS$=INKEY$:WEND:KS=ASC(KS$):RETURN
  147.